package com.ruoyi.file.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.file.domain.SysStorageConfig;

import java.util.List;

/**
 * 存储配置Service接口
 *
 * @author ruoyi
 */
public interface ISysStorageConfigService extends IService<SysStorageConfig> {

    /**
     * 查询存储配置列表
     *
     * @param sysStorageConfig 存储配置
     * @return 存储配置集合
     */
    List<SysStorageConfig> selectStorageConfigList(SysStorageConfig sysStorageConfig);

    /**
     * 新增存储配置
     *
     * @param sysStorageConfig 存储配置
     * @return 结果
     */
    int insertStorageConfig(SysStorageConfig sysStorageConfig);

    /**
     * 修改存储配置
     *
     * @param sysStorageConfig 存储配置
     * @return 结果
     */
    int updateStorageConfig(SysStorageConfig sysStorageConfig);

    /**
     * 批量删除存储配置
     *
     * @param configIds 需要删除的存储配置主键集合
     * @return 结果
     */
    int deleteStorageConfigByIds(Long[] configIds);

    /**
     * 删除存储配置信息
     *
     * @param configId 存储配置主键
     * @return 结果
     */
    int deleteStorageConfigById(Long configId);

    /**
     * 获取默认存储配置
     *
     * @return 默认存储配置
     */
    SysStorageConfig getDefaultConfig();

    /**
     * 设置默认存储配置
     *
     * @param configId 配置ID
     * @return 结果
     */
    boolean setDefaultConfig(Long configId);

    /**
     * 测试存储配置连接
     *
     * @param sysStorageConfig 存储配置
     * @return 测试结果
     */
    boolean testConnection(SysStorageConfig sysStorageConfig);

    /**
     * 根据ID获取存储配置（缓存）
     *
     * @param configId 配置ID
     * @return 存储配置
     */
    SysStorageConfig getConfigById(Long configId);
}
